This invention relates generally to the field of computer systems. More particularly, a system and method are provided for enabling or extending a J2EE (Java 2 Enterprise Edition) application server to be a participant in a web service atomic transaction.
Distributed transaction processing is currently performed within a variety of operating environments and upon a variety of computing systems, but with little ability to cross system boundaries. Web service standards have been proposed as a mechanism to provide interoperability between transaction services. For example, in one environment application servers are configured to provide transaction processing within their context of providing web services to clients. In such an environment, methods and standards that are being developed for transaction processing and workflow include Transaction Internet Protocol, WS-AtomicTransactions, qualified Business Transaction Protocol and WS-TXM (Web Services Transaction Management) ACID transaction model. These standards are meant to operate as overlays upon existing transaction services.
Standards and processes being developed for performing transaction processing within a web services environment are not natively supported in the J2EE environment or application server, which has its own transaction model based on the Open Group Distributed Transaction Processing (DTP) standards. As a result, there is currently no open or accessible mechanism to bring into a J2EE environment a transaction initiated in a web services environment in a manner that allows business logic in the J2EE environment to execute while fully supporting the desired ACID (Atomicity, Consistency, Isolation, Durability) properties of a transaction.
The J2EE Connection Architecture (JCA) defines a standard architecture for connecting a J2EE platform to Enterprise Information Systems (EIS) such as database systems, mainframe transaction processing systems, legacy applications, etc. In particular, JCA enables the development of resource adapters. A resource adapter is an integration technology designed to allow an application server (e.g., a J2EE application server) to talk to a backend EIS in its native protocol. A resource adapter provides a specific vendor's implementation of a bridge from J2EE to the EIS, and allows the bridged interaction to leverage system services offered by the application server (e.g., security, transactions).
However, the current resource adapter model requires the EIS to support (or be modified to support) XA, one of the specifications within the DTP model. Resource adapters thus are usually configured to expose an XAResource to facilitate XA communications. The resource adapter model does not provide any integration with the web services processing model in the application server.
Web services (e.g., requests under SOAP (Simple Object Access Protocol)) do not natively support XA; instead, their protocols must be bridged into the XA environment. And, the JCA resource adapter model is not integrated with web services processing capabilities within the application server. Therefore, it is not currently possible, in the J2EE model, for third parties to integrate web services and transactions.